#include <stdlib.h>
#include "Produit.h"
#include "Stock.h"
using namespace std;


Stock::Stock (long max)
{
	nbProd = 0;
	taille=max;
	tab = new Produit[max];
	
}
//getter 

long Stock::getnbProd ()
{
	return nbProd;
}

//initialisation du constructeur par copie(GestionAbonne H=G)
Stock::Stock (const Stock &S)
{
	taille = S.taille;
	nbProd = S.nbProd;
	tab = new Stock[taille];
	
	for (long i =0; i<nbProd;i++)
	{
		tab[i]= S.tab[i];
	}
}

//si on veut copier H=G dc le tab de H sera pointé sur le m tab que G==>
Stock& Stock::operator=(const Stock &S)
{
	if (this != &S)//le cas G=G pour vérifier que c'est pas la mm instence
	delete[] tab;
	taille = S.taille;
	nbProd = S.nbProd;
	tab = new Prod[taille];
	for (long i =0; i<nbProd; i++)
	{
		tab[i]= S.tab[i];
	}
	return *this;// pour le cas K=H=G dc il faut retourner H pour ensuite faire le test K=H
}

bool Stock::existe(int identifiant)
{	
	int trouve =0;
	for (int i=0; i<nbProd; i++)
	{
		if (tab[i].getid == identifiant)
		{
			cout <<"le produit existe déjà"<<endl;
			trouve =1;
			return false;
		}
	}
	if (trouve !=1 )
	cout<<"le produit n'existe pas"<<endl;
	//ajouter le produit
	bool Stock::ajouter(Produit P)//appeler la fonction d'ajout
	
	return true;
}


bool Stock::ajouter(Produit P)
{
        if (nbProd==taille)
        {
                return false;
        
        }
        else 
        {
                tab[nbProduit]=P;
                nbProd++;
                return true;
        }
}


void Stock :: afficher()
{
        for (int i=0;i<nbProd;i++)
        {
                tab[i].afficher();
        }
}

double totalPrix()
{	
	for (int i=0; i<nbProduit; i++)
	{	
		float prixTotal = prixTotal + tab[i].getPrix;
	}
	return prixTotal;		
}



Stock ::~Stock()
{       
        delete[]tab;
}
